package com.nintendo.frame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class LoginFrame extends JFrame {

    private JTextField usernameField;
    private JPasswordField passwordField;
    private JLabel messageLabel;

    public LoginFrame() {
        setTitle("登录页面");
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        // 定义字体
        Font font = new Font("Arial", Font.BOLD, 16);

        // 创建面板并设置布局
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(5, 2, 10, 10)); // 调整网格布局

        // 用户名标签和输入框
        JLabel usernameLabel = new JLabel("用户名:");
//        usernameLabel.setFont(font); // 设置字体
        usernameField = new JTextField(15); // 设置输入框大小
//        usernameField.setFont(font); // 设置字体
        panel.add(usernameLabel);
        panel.add(usernameField);

        // 密码标签和输入框
        JLabel passwordLabel = new JLabel("密码:");
//        passwordLabel.setFont(font); // 设置字体
        passwordField = new JPasswordField(15); // 设置输入框大小
//        passwordField.setFont(font); // 设置字体
        panel.add(passwordLabel);
        panel.add(passwordField);

        // 登录按钮
        JButton loginButton = new JButton("登录");
//        loginButton.setFont(font); // 设置字体
        loginButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String username = usernameField.getText();
                char[] password = passwordField.getPassword();
                if (validateLogin(username, new String(password))) {
                    messageLabel.setText("登录成功!");
                    openMainFrame();
                } else {
                    messageLabel.setText("用户名或密码错误!");
                }
            }
        });
        panel.add(loginButton);

        // 取消按钮
        JButton cancelButton = new JButton("取消");
//        cancelButton.setFont(font); // 设置字体
        cancelButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0); // 关闭应用程序
            }
        });
        panel.add(cancelButton);

        // 消息标签
        messageLabel = new JLabel("");
        messageLabel.setFont(font); // 设置字体
        panel.add(messageLabel);
        panel.add(new JLabel("")); // 占位符

        add(panel);
    }

    private boolean validateLogin(String username, String password) {
        // 这里可以添加实际的验证逻辑
        return "admin".equals(username) && "password".equals(password);
    }

    private void openMainFrame() {
        MainFrame mainFrame = new MainFrame();
        mainFrame.setVisible(true);
        this.dispose(); // 关闭登录窗口
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new LoginFrame().setVisible(true);
            }
        });
    }
}
